どうすれば検索結果の説明欄を複数の言語に対応出来そうなのか調べる - <meta name="description">
#SEO #検索エンジン #Google #i18n
調べたいこと
同じドメインで、複数の言語に対応した検索結果の説明文をどのように出しているかを知りたい。
YouTubeはGoogleの傘下のため、Googleの検索結果に適したことをやっていると思われるからYouTubeを参考した。
調べた結果
「ようつべ」でググると日本語の説明欄の結果がヒットした。
(アカウントとかの言語設定とか色々と関係してると思うので誰でも再現的にできるとは限らないと思う。)
以下の画像は説明欄が日本語であることと、リンクにホバーした時に「」に向かっていることを示している。
https://gyazo.com/8f96c08923023374dac207f48416612d
「youtube」でググって以下の検索結果を得た。
同じ検索キーワードで上記と同様再現的に同じ結果を得られるとは限らないと思う。
以下の画像は説明欄が英語であることと、リンクにホバーした時に「」に向かっていることを示している。
https://gyazo.com/762233154a40579b6ba1e8aae17a618c
上記のHTMLを読む
一般に検索結果の説明欄の文章は<meta name="description" content="...">の...の部分が使われる。
英語版だと<meta ...>は以下のようになっていた。ちゃんと英語。
https://gyazo.com/a5abdbf91b1a9b27a7cfa5dc0e923dff
日本語版だと以下のようになっていた。ちゃんと日本語。
https://gyazo.com/d84d22b317ce309380e27259b128af16
検索結果と上記の<meta ...>から推測するに、YouTubeのWebサーバーは?hl=...などのクエリパラメータを元に各言語に適した<meta ...>を生成していそう。
JavaScriptで動的に<meta name="description" content="...">を生成しても検索結果に反映してくれるかは謎。
追記: ある程度時間が経てば反映してしてくれる実験結果になった: Piping UIで多言語対応ための動的な<meta name="description" content="...">追加をテストしているブランチとそのデプロイ
本当はnavigator.languageあたりを使ってJavaScriptでユーザーの言語を判別してページの言語を決めたいことがあるので、サーバーサイドでHTMLを生成せずに出来るのであればありがたい。
「JavaScriptで動的に <meta name="description" content="...">がしたものが検索結果の説明欄に出てるぽいことが書いてある資料」が参考になる可能性がある。
少なくともYouTubeで出来ているのクエリパラメータで言語指定したものをGoogle Search Consoleなどで教えてあげるとかするとGoogleがクロールしてくれる可能性があり、検索する人の主要な言語にマッチした形で説明欄に出てくれるかもしれない。
<html lang="...">もWebサーバーで同時に適切に出力するようにすべきだと思う。